package cn.shopping.core.service;

import cn.shopping.common.bo.PageBO;
import cn.shopping.core.dto.DeleteGoodsIdDTO;
import cn.shopping.core.dto.GoodsDTO;
import cn.shopping.core.dto.PageListGoodsDTO;
import cn.shopping.core.dto.UpdateGoodsDTO;
import cn.shopping.core.vo.GoodsVO;

/**
 * 描述:
 *
 * @author Zhanggq
 * @date 2019/4/4 16:12
 */
public interface GoodsService {


    /**
     * 新增商品
     * @param dto
     * @return
     */
    Long insertGoods(GoodsDTO dto);

    /**
     * 根据表单ID获取到{@linkplain GoodsDTO 商品请求对象}
     *
     * @param goodsId
     * @return
     */
    GoodsDTO getGoodsByGoodsId(Long goodsId);

    /**
     * 批量删除商品
     *
     * @param dto
     * @return
     */
    Integer deleteGoodsByIds(DeleteGoodsIdDTO dto);


    /**
     * 按条件分页查询
     *
     * @param dto
     * @return
     */
    PageBO<GoodsVO> pageListGoods(PageListGoodsDTO dto);

    /**
     * 根据goodsId修改商品
     * @param dto
     * @return
     */
    Long updateGoodsById(UpdateGoodsDTO dto);

}
